add creation of appimage.
authortsteven4 <tsteven4@gmail.com>
Wed, 16 May 2018 00:50:22 +0000 (00:50 +0000)
committertsteven4 <tsteven4@gmail.com>
Wed, 16 May 2018 00:50:22 +0000 (00:50 +0000)
.travis.yml
gui/gpsbabelfe.desktop [new file with mode: 0644]
gui/makeappimage.sh [new file with mode: 0755]

index 03774665118c843b49ad0f1ea2b82308f3b2be64..694353d83058fb5aecf02fd8cc12efcbc7027154 100644 (file)
@@ -1,7 +1,65 @@
 sudo: required
+dist: trusty
 services: docker
-env:
-  - CC=gcc CXX=g++
-  - CC=clang CXX=clang++
+language: cpp
+addons:
+  apt:
+    sources: &add-sources
+    - sourceline: 'ppa:beineri/opt-qt595-trusty'
+    packages: &trusty-packages
+    - expat
+    - fop
+    - valgrind
+    - xsltproc
+    - libxml2-utils
+    - qt5-default
+    - qtbase5-dev
+    - libqt5webkit5-dev
+    - qttools5-dev-tools
+    - qttranslations5-l10n
+    - libusb-dev
+    - docbook-xml
+    - docbook-xsl
+matrix:
+  include:
+  - compiler: gcc
+    env:
+    - USE_DOCKER=false
+    - QT_VERSION=59
+    addons:
+      apt:
+        packages:
+        - *trusty-packages
+  - compiler: gcc
+    env:
+    - USE_DOCKER=true
+    addons:
+      apt:
+        sources: *add-sources
+        packages: &qt59-packages
+          - qt59base
+          - qt59webengine
+          - qt59translations
+          - qt59tools
+  - compiler: clang
+    env:
+    - USE_DOCKER=true
+    addons:
+      apt:
+        sources: *add-sources
+        packages:
+        - *qt59-packages
+
+before_install:
+  - if [ "${USE_DOCKER}" = "false" ]; then source "/opt/qt${QT_VERSION}/bin/qt${QT_VERSION}-env.sh"; fi
+
+install:
+  - if [ "${USE_DOCKER}" = "false" ]; then wget 'https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage'; fi
+  - if [ "${USE_DOCKER}" = "false" ]; then chmod +x linuxdeployqt-continuous-x86_64.AppImage; fi
+  - if [ "${USE_DOCKER}" = "false" ]; mv linuxdeployqt-continuous-x86_64.AppImage linuxdeployqt; fi
+
 script:
-  - ./docker_hook
+  - if [ "${USE_DOCKER}" = "true" ] ; then ./docker_hook; fi
+  - if [ "${USE_DOCKER}" = "false" ] ; then ./build_and_test; fi
+  - if [ "${USE_DOCKER}" = "false" ] ; then export VERSION=$(git rev-parse --short HEAD); fi # linuxdeployqt uses this for naming the file
+  - if [ "${USE_DOCKER}" = "false" ] ; then cd gui; QMAKE=/opt/qt${QT_VERSION}/bin/qmake LINUXDEPLOYQT=../linuxdeployqt ./makeappimage.sh; fi
diff --git a/gui/gpsbabelfe.desktop b/gui/gpsbabelfe.desktop
new file mode 100644 (file)
index 0000000..9219174
--- /dev/null
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Type=Application
+Name=GPSBabelFE
+Comment=Qt GUI interface for GPSBabel
+GenericName=GPSBabel
+Icon=gpsbabelfe
+Exec=AppRun
+Terminal=false
+Categories=Utility;
diff --git a/gui/makeappimage.sh b/gui/makeappimage.sh
new file mode 100755 (executable)
index 0000000..02e6f87
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e -x
+DISTDIR=dist
+QMAKE=${QMAKE:-qmake}
+LINUXDEPLOYQT=${LINUXDEPLOYQT:-linuxdeployqt}
+rm -fr $DISTDIR
+mkdir $DISTDIR
+cp gpsbabelfe.desktop $DISTDIR
+cp images/appicon.png $DISTDIR/gpsbabelfe.png
+cp objects/gpsbabelfe-bin $DISTDIR/gpsbabelfe
+if [ -x ../gpsbabel ]; then
+  cp ../gpsbabel $DISTDIR/gpsbabel
+elif [ -x ../GPSBabel ]; then
+  cp ../GPSBabel $DISTDIR/gpsbabel
+else
+  echo "Couldn't find command line executable gpsbabel or GPSBabel." >&2
+  exit 1;
+fi
+cp COPYING.txt $DISTDIR
+cp gmapbase.html $DISTDIR
+mkdir $DISTDIR/translations
+cp *.qm $DISTDIR/translations
+# https://github.com/probonopd/linuxdeployqt
+$LINUXDEPLOYQT $DISTDIR/gpsbabelfe -qmake=$QMAKE -appimage -verbose=2 -executable=$DISTDIR/gpsbabel -exclude-libs="libnss3.so,libnssutil3.so" 2>&1 | tee makeappimage.log